home *** CD-ROM | disk | FTP | other *** search
- /* gamma.c */
-
-
- /*
- * Draw test patterns to help determine correct gamma value for a display.
- * When the intensities in the top row nearly match the intensities in
- * the bottom row you've found the right gamma value.
- *
- * For more info about gamma correction see:
- * http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html
- *
- * This program is in the public domain
- *
- * Brian Paul 19 Oct 1995
- */
-
-
-
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include "glaux.h"
-
-
-
- static void Reshape( int width, int height )
- {
- glViewport(0, 0, (GLint)width, (GLint)height);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho( -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 );
- glMatrixMode(GL_MODELVIEW);
- }
-
-
- static GLubyte p25[] = {
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
- };
-
- static GLubyte p50[] = {
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
- };
-
- static GLubyte p75[] = {
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff,
- };
-
-
-
- static void display( void )
- {
-
- glClear( GL_COLOR_BUFFER_BIT );
-
- /** DITHERED ROW **/
-
- /* solid black */
-
- /* 25% white */
- glEnable( GL_POLYGON_STIPPLE );
- glColor3f( 1.0, 1.0, 1.0 );
- glPolygonStipple( p25 );
- glRectf( -0.6, 1.0, -0.2, 0.01 );
-
- /* 50% white */
- glPolygonStipple( p50 );
- glRectf( -0.2, 1.0, 0.2, 0.01 );
-
- /* 75% white */
- glPolygonStipple( p75 );
- glRectf( 0.2, 1.0, 0.6, 0.01 );
-
- /* 100% white */
- glDisable( GL_POLYGON_STIPPLE );
- glRectf( 0.6, 1.0, 1.0, 0.01 );
-
-
- /*** GRAY ROW ***/
-
- /* solid black */
-
- /* 25% white */
- glColor3f( 0.25, 0.25, 0.25 );
- glRectf( -0.6, -0.01, -0.2, -1.0 );
-
- /* 50% white */
- glColor3f( 0.5, 0.5, 0.5 );
- glRectf( -0.2, -0.01, 0.2, -1.0 );
-
- /* 75% white */
- glColor3f( 0.75, 0.75, 0.75 );
- glRectf( 0.2, -0.01, 0.6, -1.0 );
-
- /* 100% white */
- glColor3f( 1.0, 1.0, 1.0 );
- glRectf( 0.6, -0.01, 1.0, -1.0 );
-
- glFlush();
- }
-
-
-
- int main( int argc, char **argv )
- {
- auxInitDisplayMode( AUX_RGB );
-
- auxInitPosition( 50, 50, 400, 200 );
-
- if (auxInitWindow("gamma test patterns") == GL_FALSE) {
- auxQuit();
- }
-
- auxExposeFunc(Reshape);
- auxReshapeFunc(Reshape);
-
- auxMainLoop( display );
-
- return 0;
- }
-